import { mapState } from 'vuex'
import store from "@/store"
import {to_link,to_back,to_redirect} from "@/common/function/system_fun.js"
import {wx_login} from "@/common/function/api_fun.js"

// 尝试将用户在根目录中的store/index.js的vuex的state变量，全部加载到全局变量中
let $uStoreKey = [];
try{
	$uStoreKey = store.state ? Object.keys(store.state) : [];
}catch(e){
	
}

module.exports = {
	created() {
		// 将vuex方法挂在到$u中
		// 使用方法为：如果要修改vuex的state中的user.name变量为"史诗" => this.$u.vuex('user.name', '史诗')
		// 如果要修改vuex的state的version变量为1.0.1 => this.$u.vuex('version', '1.0.1')
		this.$u.vuex = (name, value) => {
			this.$store.commit('$uStore', {
				name,value
			})
		}
	},
	computed: {
		// 将vuex的state中的所有变量，解构到全局混入的mixin中
		...mapState($uStoreKey),
		getScoreTextComputed(){
			return (score)=>{
				let num = Number(score)
				if(num >= 4.5){
					return '非常棒'
				}else if(num > 4){
					return '很好'
				}else if(num > 3){
					return '好'
				}else{
					return '一般'
				}
			}
		}
	},
	methods:{
		to_link,
		to_back,
		to_redirect,
		noop(){},
		isLogin(){
			if(uni.getStorageSync('token')){
				let userInfo = uni.getStorageSync('user_info') || null
				return userInfo && userInfo.if_need_regist == 0 ? true : false
			}else{
				return false
			}
		},
		loginCallback(callback){
			if(this.isLogin()){
				callback()
			}else{
				wx_login(callback)
			}
		}
	}
}